身為後端工程師,處理資料是家常便飯,在專案中也經常需要產出報表。
在 Laravel 中,我們可以透過套件 PhpOffice\PhpSpreadsheet\Spreadsheet
來 讀取與匯出 Excel。
在 Laravel 專案中使用 Composer 安裝:composer require phpoffice/phpspreadsheet
建立適合的 Reader
PhpSpreadsheet 會根據檔案的副檔名或內容,自動建立對應的 Reader:
use PhpOffice\PhpSpreadsheet\IOFactory;
$reader = IOFactory::createReaderForFile($fullPath);
$spreadsheet = $reader->load($fullPath);
$resultArray = $spreadsheet->getSheetNames();
你也可以進一步讀取每個儲存格的資料。
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadSheet = new Spreadsheet();
$activeSheet = $spreadSheet->getActiveSheet();
$activeSheet->fromArray(
$arrayData, // 要寫入的資料(例如 [['Name', 'Score'], ['Alice', 90]])
null, // null 表示保留空白或 null 值
'A1', // 從 A1 開始寫入
true // 將資料當作純值處理(避免被當成公式)
);
你可以設定底線、底色、文字對齊、數字格式等等。
參考官方文件
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$writer = new Xlsx($spreadSheet);
$writer->save($fullPath); // 通常可存到 storage 資料夾底下